home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh -f
- #
- # Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved.
- #
-
- status=0
- DB_OPTS=""
- REPAIR_OPTS=""
- USAGE="Usage: xfs_admin [-efjluV] [-c 0|1] [-L label] [-U uuid] device"
-
- while getopts "efjluc:L:U:V" c
- do
- case $c in
- c) REPAIR_OPTS=$REPAIR_OPTS" -c lazycount="$OPTARG;;
- e) DB_OPTS=$DB_OPTS" -c 'version extflg'";;
- f) DB_OPTS=$DB_OPTS" -f";;
- j) DB_OPTS=$DB_OPTS" -c 'version log2'";;
- l) DB_OPTS=$DB_OPTS" -r -c label";;
- L) DB_OPTS=$DB_OPTS" -c 'label "$OPTARG"'";;
- u) DB_OPTS=$DB_OPTS" -r -c uuid";;
- U) DB_OPTS=$DB_OPTS" -c 'uuid "$OPTARG"'";;
- V) DB_OPTS=$DB_OPTS" -V";;
- \?) echo $USAGE 1>&2
- exit 2
- ;;
- esac
- done
- set -- extra $@
- shift $OPTIND
- case $# in
- 1) if [ -n "$DB_OPTS" ]
- then
- eval xfs_db -x -p xfs_admin $DB_OPTS $1
- status=$?
- fi
- if [ -n "$REPAIR_OPTS" ]
- then
- # Hide normal repair output which is sent to stderr
- # assuming the filesystem is fine when a user is
- # running xfs_admin.
- # Ideally, we need to improve the output behaviour
- # of repair for this purpose (say a "quiet" mode).
- eval xfs_repair $REPAIR_OPTS $1 2> /dev/null
- status=`expr $? + $status`
- if [ $status -ne 0 ]
- then
- echo "Conversion failed, is the filesystem unmounted?"
- fi
- fi
- ;;
- *) echo $USAGE 1>&2
- exit 2
- ;;
- esac
- exit $status
-